使用 SAP 结构化参数

在集成模式下使用 SAP Solution Manager 时,可以使用测试参数的结构值类型将值从 Solution Manager 测试脚本传递到 GUI 测试,反之亦然。

可以在 SAP Solution Manager 中创建并维护结构化参数。通过 SAP Solution Manager 定义测试参数后,可以将操作参数映射到测试中的结构化参数。运行测试时,UFT One 从 SAP Solution Manager 接收定义的结构,并使用来自 SAP Solution Manager 的结构化参数的实际值解析映射的本地参数。

创建或修改结构化参数

  1. 从 SAP Solution Manager 将测试作为外部测试启动。

    将打开 UFT One 并显示测试。

  2. 在“属性”窗格的“参数”选项卡中,单击“维护 SAP 参数”图标 。如果“属性”窗格未打开,则选择查看 > 属性打开该窗格。

    将打开 SAP Solutions Manager,同时隐藏 UFT One

    备注: SAP 结构化参数仅可以在 SAP Solution Manager 中进行维护。

  3. 在 SAP Solutions Manager 中,创建或修改要用于测试的结构参数,保存更改然后单击上一步

    将重新打开 UFT One,所做的更改现已可用。

返回页首

分配或修改操作的结构化参数

要使用 SAP 结构化参数运行测试,必须定义类型结构的参数,将测试和操作参数关联,然后将操作的结构化参数映射到测试的结构化参数。还可以将简单类型操作参数映射到为测试定义的结构化参数中的单个元素。

  1. 选择相关操作。

  2. 在“属性”窗格的“参数”选项卡中,您可以添加或删除参数,如UFT One 用户指南》中的添加/编辑参数对话框 (属性窗格 - GUI 测试) 中所述。如果“属性”窗格未打开,则选择查看 > 属性打开该窗格。

    备注: 如果测试包含结构化参数,则可以向操作添加包含该结构类型的参数。

  3. 将操作参数映射到测试结构化参数

    1. 右键单击相关操作。

    2. 在上下文菜单中选择操作调用属性

    3. 在“操作调用属性”对话框 >“参数值”选项卡中,在输入参数的“值”单元格/列或输出参数的“存储在”单元格/列中,单击“配置值”按钮。

    4. 值配置选项对话框 (用于输入参数) 或存储位置选项对话框 (用于输出参数) 中,选择“参数”单选按钮并单击“浏览”

      将打开“值映射”对话框。

    5. 定义映射,如值映射对话框中所述。

      可以选择根节点映射整个结构,也可以选择子树节点映射到嵌入结构,或选择叶节点映射到结构中的特定值。

    6. 单击确定

      参数已映射

    备注: 如果在其他操作内调用了某个操作,则可以将参数映射到父操作的输入参数。如果在其他操作后调用了某个操作,则可以将参数映射到任何上一操作的输出参数。

    有关测试和操作参数的更多详细信息,请参阅UFT One 用户指南》中的测试和操作参数

    返回页首

使用脚本中的结构化参数

下面的示例显示如何从脚本直接使用结构化参数。

<?xml version="1.0" encoding="utf-16"?>
<ZMOVIE>
  <TITLE>Avatar</TITLE>
  <DIRECTOR>
    <FIRST_NAME>James</FIRST_NAME>
    <LAST_NAME>Cameron</LAST_NAME>
    <BIRTHDAY>16-8-1954</BIRTHDAY>
  </DIRECTOR>
  <REL_DATE>10-12-2009</REL_DATE>
  <GENRE>SF</GENRE>
  <STARRING>
    <item>
      <FIRST_NAME>Michelle</FIRST_NAME>
      <LAST_NAME>Rodriguez</LAST_NAME>
    </item>
    <item>
      <FIRST_NAME>Stephen</FIRST_NAME>
      <LAST_NAME>Lang</LAST_NAME>
    </item>
    <item>
      <FIRST_NAME>Zoe</FIRST_NAME>
      <LAST_NAME>Saldana</LAST_NAME>
    </item>
  <STARRING>
</ZMOVIE>
  • 要访问结构化参数中的元素,输入参数名称后跟冒号 (:) 和元素路径。在元素和子元素之间使用句号 (.)。例如:

    Print Parameter("Param1:ZMOVIE.DIRECTOR.FIRST_NAME")

    输出:

    James
    Print Parameter("Param1:ZMOVIE.STARRING.item[1].FIRST_NAME")

    输出:

    Michelle

    备注: UFT One 为结构化参数提供语句完成,显示相关结构类型可用的元素。

  • 如果路径代表包含其他子元素的元素,则返回的值将是一个 XML 字符串。路径遵循 XPath 表达式规则

    Print Parameter("Param1:ZMOVIE.DIRECTOR")

    输出:

    <DIRECTOR>
        <FIRST_NAME>James</FIRST_NAME>
        <LAST_NAME>Cameron</LAST_NAME>
        <BIRTHDAY>16-8-1954</BIRTHDAY>
      </DIRECTOR>
    
  • 如果结构是数组或表,则可以循环使用:

    rowCount = Parameter("Param1:ZMOVIE.STARRING.item.count()")
    For Iterator = 1 To rowCount Step 1
        first_name = "Param1:ZMOVIE.STARRING.item[" & Iterator & "].FIRST_NAME"
        last_name = "Param1:ZMOVIE.STARRING.item[" &Iterator &"].LAST_NAME"
        print Parameter(first_name) & " " & Parameter(last_name)
    Next

    输出:

    Michelle Rodriguez
    Stephen Lang
    Zoe Saldana
    

备注: 可以在路径中省略根元素。例如:

Print Parameter("Param1:ZMOVIE.DIRECTOR.FIRST_NAME")

也可以写成

Print Parameter("Param1:DIRECTOR.FIRST_NAME")

返回页首